#pragma once
#include <iostream>
#include "Mutex.hpp"
#include <functional>
#include "Log.hpp"
#include <pthread.h>


//这里用来定义一下任务！
using task_t = std::function<void()>;
using namespace myLog;

std::string  GetThreadname(){
    char id[128] = {0};
    pthread_getname_np(pthread_self(), id, sizeof(id));
    return id;
}


// 任务可以给类进去，也可以是函数，这里就直接给函数了
void Download(){
    LOG(LogLevel::DEBUG) << GetThreadname() << " 这是一个Download任务";
}

void Upload(){
    LOG(LogLevel::DEBUG) << GetThreadname() << " 这是一个Upload任务";
}

void Scan(){
    LOG(LogLevel::DEBUG) << GetThreadname() << " 这是一个Scan任务";
}

void Copy(){
    LOG(LogLevel::DEBUG) << GetThreadname() << " 这是一个Copy任务";
}

void Sleep(){
    LOG(LogLevel::DEBUG) << GetThreadname() << " 这是一个Sleep任务";
}

std::vector<task_t> _tasks = {Download, Upload, Scan, Copy, Sleep};